package com.fast.fast.common.core.config.kaptcha;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Kaptcha配置文件
 *
 * @author lyf
 * @date 2022/01/01 00:00 周六
 **/
@Data
@ConfigurationProperties(prefix = "kaptcha")
public class KaptchaProperties {

    private final Border border = new Border();

    private final Text text = new Text();

    private final Image image = new Image();

    /**
     * 是否需要干扰线,默认否
     */
    private static Boolean needNoNoise;

    /**
     * 边框属性类
     *
     * @author lyf
     * @date 2022/01/01 00:00 周六
     **/
    @Data
    public static class Border {

        /**
         * 是否开启边框,默认是
         */
        private String enable = "yes";

        /**
         * 边框颜色
         */
        private String color = "30,144,255";

    }

    /**
     * 文字属性类
     *
     * @author lyf
     * @date 2022/01/01 00:00 周六
     **/
    @Data
    public static class Text {

        private final Font font = new Font();

        private final Char aChar = new Char();

        /**
         * 字体属性类
         *
         * @author lyf
         * @date 2022/01/01 00:00 周六
         **/
        @Data
        public static class Font {

            /**
             * 字体颜色
             */
            private String color = "blue";

            /**
             * 字体大小
             */
            private String size = "32";

            /**
             * 字体样式
             */
            private String names = "Arial, Courier";

        }

        /**
         * 字符属性类
         *
         * @author lyf
         * @date 2022/01/01 00:00 周六
         **/
        @Data
        public static class Char {

            /**
             * 字符长度
             */
            private String length = "4";

            /**
             * 字符间隔
             */
            private String space = "6";

        }

    }

    /**
     * 图片属性类
     *
     * @author lyf
     * @date 2022/01/01 00:00 周六
     **/
    @Data
    public static class Image {

        /**
         * 图片宽度
         */
        private String width = "120";

        /**
         * 图片长度
         */
        private String height = "50";

        /**
         * 图片样式
         * <p>
         * 水纹com.google.code.kaptcha.impl.WaterRipple(官方默认,相当丑)
         * 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy(太花了)
         * 阴影com.google.code.kaptcha.impl.ShadowGimpy(还可以)
         */
        private String type = "com.google.code.kaptcha.impl.ShadowGimpy";

        /**
         * 是否去除干扰线,默认是
         */
        private String noNoise = "com.google.code.kaptcha.impl.NoNoise";

        public void setNoNoise() {
            if (needNoNoise) {
                this.noNoise = "";
            }
        }
    }


}
